{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 确定文本切割的最优策略\n",
    "\n",
    "在使用基于检索的生成模型（RAG）处理长文本数据时，合理的文本切割策略是提高模型性能和效率的关键。\n",
    "\n",
    "文本切割策略主要依赖于两个参数：`chunksize`（块大小）和`overlap`（重叠）。正确配置这些参数可以显著影响模型的输出质量和处理速度。\n",
    "\n",
    "* chunk_size 基于模型的限制(embedding  , LLM )\n",
    "* 不同Text splitter 的优劣，如何选取\n",
    "* 可视化文本切分的效果，供大家切分文本初步参考\n",
    "\n",
    "## 基于模型选取**chunk_size** <a id=\"**chunk_size**\"></a>\n",
    "\n",
    "* 首先是**embedding model**， 向量嵌入模型有**Max Tokens** 的限制，设置的**chunk size**不可以超过模型支持的最大长度，否则将丢失语义。\n",
    " \n",
    "![Alt text](<chunksize VS embe max tokens.png>)\n",
    "\n",
    "不同的**embedding model** 支持的 **Max Tokens**都有不同，具体可参考[model 排行](https://huggingface.co/spaces/mteb/leaderboard)\n",
    "\n",
    "* 其次是**LLM model** , 大语言模型有**Max sequence length**的限制，处理知识增强的时候，**prompt**中召回的文本不可以超出最大长度。\n",
    "\n",
    "![Alt text](<chunksize VS LLM.png>)\n",
    "\n",
    "需要根据不同的LLM支持的最大token长度，选取合适的参数\n",
    "\n",
    "**不同的文本切分策略**\n",
    "* **1: [CharacterTextSplitter](#CharacterTextSplitter)** - 这是最简单的方法。它默认基于字符（默认为\"\"）来分割，并且通过字符的数量来衡量块的长度。\n",
    "* **2：[RecursiveCharacterTextSplitter](#RecursiveCharacterTextSplitter)** - 基于字符列表拆分文本。\n",
    "* **3: [Document Specific Splitting](#DocumentSpecific)** - 基于不同的文件类型使用不同的切分 (PDF, Python, Markdown)\n",
    "* **4: [Semantic Splitting](#SemanticChunking)** - 基于滑动窗口的语义切分\n",
    "\n",
    "那我们就开始实际看一下不同的textsplitter切分效果如何？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "text = \"大家好，我是果粒奶优有果粒，欢迎关注我，让我们一起探索AI。\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1 CharacterTextSplitter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain_text_splitters import CharacterTextSplitter\n",
    "\n",
    "text_splitter = CharacterTextSplitter(\n",
    "    separator=\"\",\n",
    "    chunk_size=5,\n",
    "    chunk_overlap=1,\n",
    "    length_function=len,\n",
    "    is_separator_regex=False,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['大家好，我', '我是果粒奶', '奶优有果粒', '粒，欢迎关', '关注我，让', '让我们一起', '起探索AI', 'I。']"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text_splitter.split_text(text)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 切分原理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['大家好，我', '我是果粒奶', '奶优有果粒', '粒，欢迎关', '关注我，让', '让我们一起', '起探索AI', 'I。']\n"
     ]
    }
   ],
   "source": [
    "#创建chunks维护切分的文本块\n",
    "chunks = []\n",
    "chunk_size = 5 \n",
    "chunk_overlap = 1\n",
    "\n",
    "i = 0\n",
    "while i < len(text):\n",
    "    # 如果这不是第一块，就回溯chunk_overlap个字符以创建重叠\n",
    "    if i > 0:\n",
    "        start = max(i - chunk_overlap, 0)\n",
    "    else:\n",
    "        start = i\n",
    "    # 确定这个块的结束位置\n",
    "    end = min(start + chunk_size, len(text))  \n",
    "    # 提取块并添加到列表\n",
    "    chunk = text[start:end]\n",
    "    chunks.append(chunk)\n",
    "    # 更新下一块的开始位置\n",
    "    i = end\n",
    "print(chunks)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2 RecursiveCharacterTextSplitter\n",
    "**RecursiveCharacterTextSplitter**文本分割工具的设计目的是为了在处理文本时，能够在不损失语义关联性的前提下，将文本有效分割成更小的单元。通过先尝试分割段落，如果段落仍然过大，再尝试分割成句子，依此类推，直至分割成单词。这种分割方法尽量保留文本的原有结构和意义，使得处理后的文本单元在语义上保持连贯性。\n",
    "\n",
    "* \"\\n\\n\" - 段落\n",
    "* \"\\n\" - 换行\n",
    "* \" \" - 空格\n",
    "* \"\" - 字符"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "text = '''  \n",
    "为什么文本切割在RAG中很重要？RAG（Retrieval-Augmented Generation）是一种将检索机制集成到生成式语言模型中的技术，目的是通过从大量文档或知识库中检索相关信息来增强模型的生成能力。这种方法特别适用于需要广泛背景知识的任务，如问答、文章撰写或详细解释特定主题。在RAG架构中，文本切割（即将长文本分割成较短片段的过程）非常重要，原因如下：\n",
    "\n",
    "1. **提高检索效率：** 对于大规模的文档库，直接在整个库上执行检索任务既不切实际也不高效。通过将长文本切割成较短的片段，可以使检索过程更加高效，因为短文本片段更容易被比较和索引。这样可以加快检索速度，提高整体性能。\n",
    "\n",
    "2. **提升结果相关性：** 当查询特定信息时，与查询最相关的内容往往只占据文档中的一小部分。通过文本切割，可以更精确地匹配查询和文档片段之间的相关性，从而提高检索到的信息的准确性和相关性。这对于生成高质量、相关性强的回答尤为重要。\n",
    "\n",
    "3. **内存和处理限制：** 当代的语言模型，尽管强大，但处理长文本时仍受到内存和计算资源的限制。将长文本分割成较短的片段可以帮助减轻这些限制，因为模型可以分别处理这些较短的文本片段，而不是一次性处理整个长文档。\n",
    "\n",
    "4. **提高生成质量：** 在RAG框架中，检索到的文本片段将直接影响生成模块的输出。通过确保检索到高质量和高相关性的文本片段，可以提高最终生成内容的质量和准确性。\n",
    "\n",
    "5. **适应性和灵活性：** 文本切割允许模型根据需要处理不同长度的文本，增加了模型处理各种数据源的能力。这种灵活性对于处理多样化的查询和多种格式的文档特别重要。\n",
    "\n",
    "总之，文本切割在RAG中非常重要，因为它直接影响到检索效率、结果的相关性、系统的处理能力，以及最终生成内容的质量和准确性。通过优化文本切割策略，可以显著提升RAG系统的整体性能和用户满意度。'''\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain_text_splitters import RecursiveCharacterTextSplitter\n",
    "\n",
    "text_splitter = RecursiveCharacterTextSplitter(\n",
    "    # Set a really small chunk size, just to show.\n",
    "    chunk_size=50,\n",
    "    chunk_overlap=1,\n",
    "    length_function=len,\n",
    "    is_separator_regex=False,\n",
    "    separators = [\"\\n\\n\", \"\\n\", \" \" , \"\"]\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "chunk_doc = text_splitter.create_documents([text])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Document(page_content='为什么文本切割在RAG中很重要？RAG（Retrieval-Augmented'),\n",
       " Document(page_content='Generation）是一种将检索机制集成到生成式语言模型中的技术，目的是通过从大量文档或知识库中'),\n",
       " Document(page_content='中检索相关信息来增强模型的生成能力。这种方法特别适用于需要广泛背景知识的任务，如问答、文章撰写或详细'),\n",
       " Document(page_content='细解释特定主题。在RAG架构中，文本切割（即将长文本分割成较短片段的过程）非常重要，原因如下：'),\n",
       " Document(page_content='1. **提高检索效率：**'),\n",
       " Document(page_content='对于大规模的文档库，直接在整个库上执行检索任务既不切实际也不高效。通过将长文本切割成较短的片段，可'),\n",
       " Document(page_content='可以使检索过程更加高效，因为短文本片段更容易被比较和索引。这样可以加快检索速度，提高整体性能。'),\n",
       " Document(page_content='2. **提升结果相关性：**'),\n",
       " Document(page_content='当查询特定信息时，与查询最相关的内容往往只占据文档中的一小部分。通过文本切割，可以更精确地匹配查询'),\n",
       " Document(page_content='询和文档片段之间的相关性，从而提高检索到的信息的准确性和相关性。这对于生成高质量、相关性强的回答尤为'),\n",
       " Document(page_content='为重要。'),\n",
       " Document(page_content='3. **内存和处理限制：**'),\n",
       " Document(page_content='当代的语言模型，尽管强大，但处理长文本时仍受到内存和计算资源的限制。将长文本分割成较短的片段可以帮'),\n",
       " Document(page_content='帮助减轻这些限制，因为模型可以分别处理这些较短的文本片段，而不是一次性处理整个长文档。'),\n",
       " Document(page_content='4. **提高生成质量：**'),\n",
       " Document(page_content='在RAG框架中，检索到的文本片段将直接影响生成模块的输出。通过确保检索到高质量和高相关性的文本片段'),\n",
       " Document(page_content='段，可以提高最终生成内容的质量和准确性。'),\n",
       " Document(page_content='5. **适应性和灵活性：**'),\n",
       " Document(page_content='文本切割允许模型根据需要处理不同长度的文本，增加了模型处理各种数据源的能力。这种灵活性对于处理多样'),\n",
       " Document(page_content='样化的查询和多种格式的文档特别重要。'),\n",
       " Document(page_content='总之，文本切割在RAG中非常重要，因为它直接影响到检索效率、结果的相关性、系统的处理能力，以及最终'),\n",
       " Document(page_content='终生成内容的质量和准确性。通过优化文本切割策略，可以显著提升RAG系统的整体性能和用户满意度。')]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_doc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sentence_transformers import SentenceTransformer\n",
    "import  matplotlib.pyplot as plt \n",
    "from transformers import AutoTokenizer\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "Embedding_name = 'BAAI/bge-large-zh-v1.5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "512"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "SentenceTransformer(Embedding_name).max_seq_length"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "49"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(chunk_doc[1].page_content)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Generation）是一种将检索机制集成到生成式语言模型中的技术，目的是通过从大量文档或知识库中'"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_doc[1].page_content"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "44"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tokenizer = AutoTokenizer.from_pretrained(Embedding_name)\n",
    "len(tokenizer.encode(chunk_doc[1].page_content))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### token数量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_chunk(chunk_doc , Embedding_name):\n",
    "    tokenizer = AutoTokenizer.from_pretrained(Embedding_name)\n",
    "    length = [len(tokenizer.encode(doc.page_content))\n",
    "                  for doc in chunk_doc ]\n",
    "    fig = pd.Series(length).hist()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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+tOfxsCBAyu4svx52aWKjBw5MiKiy7uXt2/f3nEd+bniiivi0UcfjaeeeiqOOeaYju0jR46M9957L95+++1O+5tD/vr37x8f+chH4rTTToslS5bExIkT47vf/a4ZJLRx48bYsWNHnHrqqdGvX7/o169frF69Om6//fbo169fjBgxwiwq5Igjjojjjz8+tmzZ0uPuE+KjijQ2NsbIkSNj1apVHdva2tpi3bp1MWXKlAqurGfJsiyuuOKKWLlyZfzmN7+JxsbGTtefdtppUVtb22kOmzdvjtdee80cyqy9vT2KxaIZJHTOOefEiy++GJs2ber4mDRpUlxyySUd/2wWlfHOO+/En/70pxg1alSPu0942SWxd955J7Zs2dJx+dVXX41NmzbF0KFDY8yYMTFv3ry46aab4rjjjovGxsZYuHBhjB49OmbNmlW5RfcwTU1NsWLFinjkkUeirq6u4/XSwYMHx8CBA2Pw4MHx5S9/OebPnx9Dhw6N+vr6uPLKK2PKlCnxsY99rMKr7zkWLFgQM2bMiDFjxsSuXbtixYoV8fTTT8cTTzxhBgnV1dV1vN/pfYcddlgMGzasY7tZpPH1r389Zs6cGWPHjo2tW7fGokWLom/fvvHFL36x590nKv3jNr3NU089lUVEl485c+ZkWfbPH7dduHBhNmLEiKxQKGTnnHNOtnnz5souuofZ19c/IrJ77723Y59//OMf2eWXX54NGTIkGzRoUPa5z30ue+ONNyq36B7o0ksvzcaOHZv1798/O/LII7Nzzjkne/LJJzuuN4PK+eCP2maZWaRy0UUXZaNGjcr69++fHX300dlFF12UbdmypeP6njSHmizLsgp1DwDQC3nPBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBI6v8D4KbCthjY0IwAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_chunk(chunk_doc , Embedding_name)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3 其他结构的文本切割\n",
    "\n",
    "* **python**    - RecursiveCharacterTextSplitter.get_separators_for_language(Language.PYTHON)\n",
    "* **json**      - RecursiveJsonSplitter\n",
    "* **Markdown**  - MarkdownTextSplitter\n",
    "* **Html**      - HTMLHeaderTextSplitter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4 Semantic Chunking <a id=\"SemanticChunking\"></a>\n",
    "\n",
    "为什么我们在处理文本时通常会使用固定的分块大小，而不考虑实际内容的语义意义。是不是可以基于文本的语义实现一种更好的方法来处理文本分块，即并非固定参数(**chunksize**)，而是基于语义自行动态确定参数。\n",
    "\n",
    "我们可以通过**embedding**技术进行动态规划\n",
    "\n",
    "**Embedding**将文本转化为高维空间中的向量的技术，这些向量能够反映出文本的语义内容。通过文本嵌入技术，可以捕捉到文本的深层次语义信息。当比较两段文本的嵌入向量时，可以根据它们在高维空间中的距离或者角度，来推断这两段文本在语义上的相似度或者差异。利用相似度，将语义上相似的文本自动分组在一起，形成聚类，这有助于更好地理解和组织大量的文本数据。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open('dream.txt') as file:\n",
    "    essay = file.read()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 我们需要将文本进行拆分，拆分成多个单句，可以按照标点符号进行切分\n",
    "\n",
    "split_char = ['.', '?', '!']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "77 senteneces were found\n"
     ]
    }
   ],
   "source": [
    "import re\n",
    "\n",
    "# Splitting the essay on '.', '?', and '!'\n",
    "single_sentences_list = re.split(r'(?<=[.?!])\\s+', essay)\n",
    "print (f\"{len(single_sentences_list)} senteneces were found\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['I have a Dream\\n\\nby Martin Luther King, Jr.',\n",
       " 'Delivered on the steps at the Lincoln Memorial in Washington\\nD.C.',\n",
       " 'on August 28, 1963\\n\\nFive score years ago, a great American, in whose symbolic shadow\\nwe stand signed the Emancipation Proclamation.',\n",
       " 'This momentous\\ndecree came as a great beacon light of hope to millions of Negro\\nslaves who had been seared in the flames of withering injustice.',\n",
       " 'It came as a joyous daybreak to end the long night of\\ncaptivity.',\n",
       " 'But one hundred years later, we must face the tragic fact that\\nthe Negro is still not free.',\n",
       " 'One hundred years later, the life\\nof the Negro is still sadly crippled by the manacles of\\nsegregation and the chains of discrimination.',\n",
       " 'One hundred years\\nlater, the Negro lives on a lonely island of poverty in the\\nmidst of a vast ocean of material prosperity.',\n",
       " 'One hundred years\\nlater, the Negro is still languishing in the corners of American\\nsociety and finds himself an exile in his own land.',\n",
       " 'So we have\\ncome here today to dramatize an appalling condition.',\n",
       " \"In a sense we have come to our nation's capital to cash a check.\",\n",
       " 'When the architects of our republic wrote the magnificent words\\nof the Constitution and the declaration of Independence, they\\nwere signing a promissory note to which every American was to\\nfall heir.',\n",
       " 'This note was a promise that all men would be\\nguarranteed the inalienable rights of life, liberty, and the\\npursuit of happiness.',\n",
       " 'It is obvious today that America has defaulted on this\\npromissory note insofar as her citizens of color are concerned.',\n",
       " 'Instead of honoring this sacred obligation, America has given\\nthe Negro people a bad check which has come back marked\\n\"insufficient funds.\" But we refuse to believe that the bank of\\njustice is bankrupt.',\n",
       " 'We refuse to believe that there are\\ninsufficient funds in the great vaults of opportunity of this\\nnation.',\n",
       " 'So we have come to cash this check -- a check that will\\ngive us upon demand the riches of freedom and the security of\\njustice.',\n",
       " 'We have also come to this hallowed spot to remind\\nAmerica of the fierce urgency of now.',\n",
       " 'This is no time to engage\\nin the luxury of cooling off or to take the tranquilizing drug\\nof gradualism.',\n",
       " 'Now is the time to rise from the dark and\\ndesolate valley of segregation to the sunlit path of racial\\njustice.',\n",
       " \"Now is the time to open the doors of opportunity to all\\nof God's children.\",\n",
       " 'Now is the time to lift our nation from the\\nquicksands of racial injustice to the solid rock of\\nbrotherhood.',\n",
       " 'It would be fatal for the nation to overlook the urgency of the\\nmoment and to underestimate the determination of the Negro.',\n",
       " \"This\\nsweltering summer of the Negro's legitimate discontent will not\\npass until there is an invigorating autumn of freedom and\\nequality.\",\n",
       " 'Nineteen sixty-three is not an end, but a beginning.',\n",
       " 'Those who hope that the Negro needed to blow off steam and will\\nnow be content will have a rude awakening if the nation returns\\nto business as usual.',\n",
       " 'There will be neither rest nor tranquility\\nin America until the Negro is granted his citizenship rights.',\n",
       " 'The whirlwinds of revolt will continue to shake the foundations\\nof our nation until the bright day of justice emerges.',\n",
       " 'But there is something that I must say to my people who stand on\\nthe warm threshold which leads into the palace of justice.',\n",
       " 'In\\nthe process of gaining our rightful place we must not be guilty\\nof wrongful deeds.',\n",
       " 'Let us not seek to satisfy our thirst for\\nfreedom by drinking from the cup of bitterness and hatred.',\n",
       " 'We must forever conduct our struggle on the high plane of\\ndignity and discipline.',\n",
       " 'We must not allow our creative protest\\nto degenerate into physical violence.',\n",
       " 'Again and again we must\\nrise to the majestic heights of meeting physical force with soul\\nforce.',\n",
       " 'The marvelous new militancy which has engulfed the Negro\\ncommunity must not lead us to distrust of all white people, for\\nmany of our white brothers, as evidenced by their presence here\\ntoday, have come to realize that their destiny is tied up with\\nour destiny and their freedom is inextricably bound to our\\nfreedom.',\n",
       " 'We cannot walk alone.',\n",
       " 'And as we walk, we must make the pledge that we shall march\\nahead.',\n",
       " 'We cannot turn back.',\n",
       " 'There are those who are asking the\\ndevotees of civil rights, \"When will you be satisfied?\" We can\\nnever be satisfied as long as our bodies, heavy with the fatigue\\nof travel, cannot gain lodging in the motels of the highways and\\nthe hotels of the cities.',\n",
       " \"We cannot be satisfied as long as the\\nNegro's basic mobility is from a smaller ghetto to a larger one.\",\n",
       " 'We can never be satisfied as long as a Negro in Mississippi\\ncannot vote and a Negro in New York believes he has nothing for\\nwhich to vote.',\n",
       " 'No, no, we are not satisfied, and we will not be\\nsatisfied until justice rolls down like waters and righteousness\\nlike a mighty stream.',\n",
       " 'I am not unmindful that some of you have come here out of great\\ntrials and tribulations.',\n",
       " 'Some of you have come fresh from narrow\\ncells.',\n",
       " 'Some of you have come from areas where your quest for\\nfreedom left you battered by the storms of persecution and\\nstaggered by the winds of police brutality.',\n",
       " 'You have been the\\nveterans of creative suffering.',\n",
       " 'Continue to work with the faith\\nthat unearned suffering is redemptive.',\n",
       " 'Go back to Mississippi, go back to Alabama, go back to Georgia,\\ngo back to Louisiana, go back to the slums and ghettos of our\\nnorthern cities, knowing that somehow this situation can and\\nwill be changed.',\n",
       " 'Let us not wallow in the valley of despair.',\n",
       " 'I say to you today, my friends, that in spite of the\\ndifficulties and frustrations of the moment, I still have a\\ndream.',\n",
       " 'It is a dream deeply rooted in the American dream.',\n",
       " 'I have a dream that one day this nation will rise up and live\\nout the true meaning of its creed: \"We hold these truths to be\\nself-evident: that all men are created equal.\"\\n\\nI have a dream that one day on the red hills of Georgia the sons\\nof former slaves and the sons of former slaveowners will be able\\nto sit down together at a table of brotherhood.',\n",
       " 'I have a dream that one day even the state of Mississippi, a\\ndesert state, sweltering with the heat of injustice and\\noppression, will be transformed into an oasis of freedom and\\njustice.',\n",
       " 'I have a dream that my four children will one day live in a\\nnation where they will not be judged by the color of their skin\\nbut by the content of their character.',\n",
       " 'I have a dream today.',\n",
       " \"I have a dream that one day the state of Alabama, whose\\ngovernor's lips are presently dripping with the words of\\ninterposition and nullification, will be transformed into a\\nsituation where little black boys and black girls will be able\\nto join hands with little white boys and white girls and walk\\ntogether as sisters and brothers.\",\n",
       " 'I have a dream today.',\n",
       " 'I have a dream that one day every valley shall be exalted, every\\nhill and mountain shall be made low, the rough places will be\\nmade plain, and the crooked places will be made straight, and\\nthe glory of the Lord shall be revealed, and all flesh shall see\\nit together.',\n",
       " 'This is our hope.',\n",
       " 'This is the faith with which I return to the\\nSouth.',\n",
       " 'With this faith we will be able to hew out of the\\nmountain of despair a stone of hope.',\n",
       " 'With this faith we will be\\nable to transform the jangling discords of our nation into a\\nbeautiful symphony of brotherhood.',\n",
       " 'With this faith we will be\\nable to work together, to pray together, to struggle together,\\nto go to jail together, to stand up for freedom together,\\nknowing that we will be free one day.',\n",
       " 'This will be the day when all of God\\'s children will be able to\\nsing with a new meaning, \"My country, \\'tis of thee, sweet land\\nof liberty, of thee I sing.',\n",
       " 'Land where my fathers died, land of\\nthe pilgrim\\'s pride, from every mountainside, let freedom ring.\"\\n\\nAnd if America is to be a great nation this must become true.',\n",
       " 'So\\nlet freedom ring from the prodigious hilltops of New Hampshire.',\n",
       " 'Let freedom ring from the mighty mountains of New York.',\n",
       " 'Let\\nfreedom ring from the heightening Alleghenies of Pennsylvania!',\n",
       " 'Let freedom ring from the snowcapped Rockies of Colorado!',\n",
       " 'Let freedom ring from the curvaceous peaks of California!',\n",
       " 'But not only that; let freedom ring from Stone Mountain of\\nGeorgia!',\n",
       " 'Let freedom ring from Lookout Mountain of Tennessee!',\n",
       " 'Let freedom ring from every hill and every molehill of\\nMississippi.',\n",
       " 'From every mountainside, let freedom ring.',\n",
       " 'When we let freedom ring, whem we let it ring from every village\\nand every hamlet, from every state and every city, we will be\\nable to speed up that day when all of God\\'s children, black men\\nand white men, Jews and Gentiles, Protestants and Catholics,\\nwill be able to join hands and sing in the words of the old\\nNegro spiritual, \"Free at last!',\n",
       " 'free at last!',\n",
       " 'thank God\\nAlmighty, we are free at last!\"\\n']"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "single_sentences_list"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们需要为单个句子拼接更多的句子，但是 `list` 添加比较困难。因此将其转换为字典列表（`List[dict]`）\n",
    "\n",
    "{ 'sentence' : XXX  , 'index' : 0}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'sentence': 'I have a Dream\\n\\nby Martin Luther King, Jr.', 'index': 0},\n",
       " {'sentence': 'Delivered on the steps at the Lincoln Memorial in Washington\\nD.C.',\n",
       "  'index': 1},\n",
       " {'sentence': 'on August 28, 1963\\n\\nFive score years ago, a great American, in whose symbolic shadow\\nwe stand signed the Emancipation Proclamation.',\n",
       "  'index': 2}]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sentences = [{'sentence': x, 'index' : i} for i, x in enumerate(single_sentences_list)]\n",
    "sentences[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "def combine_sentences(sentences, buffer_size=1):\n",
    "    # \n",
    "    \n",
    "    combined_sentences = [\n",
    "        ' '.join(sentences[j]['sentence'] for j in range(max(i - buffer_size, 0), min(i + buffer_size + 1, len(sentences))))\n",
    "        for i in range(len(sentences))\n",
    "    ]   \n",
    "    # 更新原始字典列表，添加组合后的句子\n",
    "    for i, combined_sentence in enumerate(combined_sentences):\n",
    "        sentences[i]['combined_sentence'] = combined_sentence\n",
    "\n",
    "    return sentences\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "sentences = combine_sentences(sentences)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'sentence': 'I have a Dream\\n\\nby Martin Luther King, Jr.',\n",
       "  'index': 0,\n",
       "  'combined_sentence': 'I have a Dream\\n\\nby Martin Luther King, Jr. Delivered on the steps at the Lincoln Memorial in Washington\\nD.C.'},\n",
       " {'sentence': 'Delivered on the steps at the Lincoln Memorial in Washington\\nD.C.',\n",
       "  'index': 1,\n",
       "  'combined_sentence': 'I have a Dream\\n\\nby Martin Luther King, Jr. Delivered on the steps at the Lincoln Memorial in Washington\\nD.C. on August 28, 1963\\n\\nFive score years ago, a great American, in whose symbolic shadow\\nwe stand signed the Emancipation Proclamation.'},\n",
       " {'sentence': 'on August 28, 1963\\n\\nFive score years ago, a great American, in whose symbolic shadow\\nwe stand signed the Emancipation Proclamation.',\n",
       "  'index': 2,\n",
       "  'combined_sentence': 'Delivered on the steps at the Lincoln Memorial in Washington\\nD.C. on August 28, 1963\\n\\nFive score years ago, a great American, in whose symbolic shadow\\nwe stand signed the Emancipation Proclamation. This momentous\\ndecree came as a great beacon light of hope to millions of Negro\\nslaves who had been seared in the flames of withering injustice.'},\n",
       " {'sentence': 'This momentous\\ndecree came as a great beacon light of hope to millions of Negro\\nslaves who had been seared in the flames of withering injustice.',\n",
       "  'index': 3,\n",
       "  'combined_sentence': 'on August 28, 1963\\n\\nFive score years ago, a great American, in whose symbolic shadow\\nwe stand signed the Emancipation Proclamation. This momentous\\ndecree came as a great beacon light of hope to millions of Negro\\nslaves who had been seared in the flames of withering injustice. It came as a joyous daybreak to end the long night of\\ncaptivity.'},\n",
       " {'sentence': 'It came as a joyous daybreak to end the long night of\\ncaptivity.',\n",
       "  'index': 4,\n",
       "  'combined_sentence': 'This momentous\\ndecree came as a great beacon light of hope to millions of Negro\\nslaves who had been seared in the flames of withering injustice. It came as a joyous daybreak to end the long night of\\ncaptivity. But one hundred years later, we must face the tragic fact that\\nthe Negro is still not free.'},\n",
       " {'sentence': 'But one hundred years later, we must face the tragic fact that\\nthe Negro is still not free.',\n",
       "  'index': 5,\n",
       "  'combined_sentence': 'It came as a joyous daybreak to end the long night of\\ncaptivity. But one hundred years later, we must face the tragic fact that\\nthe Negro is still not free. One hundred years later, the life\\nof the Negro is still sadly crippled by the manacles of\\nsegregation and the chains of discrimination.'}]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sentences[:6]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来使用**embedding model**对**sentences** 进行编码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\blackink\\.conda\\envs\\llangchainhf\\lib\\site-packages\\langchain_core\\_api\\deprecation.py:117: LangChainDeprecationWarning: The class `langchain_community.embeddings.openai.OpenAIEmbeddings` was deprecated in langchain-community 0.0.9 and will be removed in 0.2.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import OpenAIEmbeddings`.\n",
      "  warn_deprecated(\n"
     ]
    }
   ],
   "source": [
    "from langchain.embeddings import OpenAIEmbeddings\n",
    "import os\n",
    "from getpass import getpass\n",
    "\n",
    "os.environ[\"OPENAI_API_KEY\"] = getpass()\n",
    "\n",
    "oaiembeds = OpenAIEmbeddings()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "embeddings = oaiembeds.embed_documents([x['combined_sentence'] for x in sentences])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将embedding添加到sentence中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "for i, sentence in enumerate(sentences):\n",
    "    sentence['combined_sentence_embedding'] = embeddings[i]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'sentence': 'I have a Dream\\n\\nby Martin Luther King, Jr.',\n",
       " 'index': 0,\n",
       " 'combined_sentence': 'I have a Dream\\n\\nby Martin Luther King, Jr. Delivered on the steps at the Lincoln Memorial in Washington\\nD.C.',\n",
       " 'combined_sentence_embedding': [-0.02888452068466074,\n",
       "  -0.027186900202331638,\n",
       "  -0.03372773364944415,\n",
       "  -0.01185838206710934,\n",
       "  0.0028179259391784466,\n",
       "  0.02053372316871437,\n",
       "  -0.013443659894256317,\n",
       "  -0.025114804202728776,\n",
       "  -0.017662747928239422,\n",
       "  0.010472823584519068,\n",
       "  0.004515547119999525,\n",
       "  0.02450316178917094,\n",
       "  -0.007514469326362963,\n",
       "  -0.028684800408781404,\n",
       "  0.005620248964634478,\n",
       "  0.000699020383501036,\n",
       "  0.01123425620498641,\n",
       "  -0.0053050656370930566,\n",
       "  -0.01095964082565232,\n",
       "  -0.00670310617126447,\n",
       "  0.020396416410369957,\n",
       "  -0.011845899549866881,\n",
       "  0.01647690972152849,\n",
       "  0.0022546529306891475,\n",
       "  0.0037478727752496372,\n",
       "  -0.00783901430900557,\n",
       "  0.02119529751388731,\n",
       "  -0.030207667512361352,\n",
       "  0.023991377650907503,\n",
       "  -0.009361880481262885,\n",
       "  0.004081779878654747,\n",
       "  -0.02102054227249289,\n",
       "  -0.020146766065520787,\n",
       "  -0.027286760340271308,\n",
       "  -0.04171653723403659,\n",
       "  -0.005932311430034626,\n",
       "  -0.019372849996488355,\n",
       "  -0.019135683100204273,\n",
       "  0.029458716477813836,\n",
       "  -0.022855469513166405,\n",
       "  0.014404812790602996,\n",
       "  -0.00509286284397126,\n",
       "  0.017101033721006156,\n",
       "  -0.04533646537170431,\n",
       "  -0.04001891861435275,\n",
       "  0.01882362110046544,\n",
       "  0.004787041637192341,\n",
       "  -0.022768092823791827,\n",
       "  -0.021257709168776968,\n",
       "  0.022543407513427573,\n",
       "  0.04483716468200597,\n",
       "  0.01939781503097327,\n",
       "  -0.016526839790498325,\n",
       "  -0.032679202201077624,\n",
       "  -0.011827175308341877,\n",
       "  0.011571284170532792,\n",
       "  -0.015365965686949675,\n",
       "  0.0013871185644149207,\n",
       "  0.002655653447857143,\n",
       "  -0.00814483551578449,\n",
       "  0.002019045534153071,\n",
       "  0.014517155445785123,\n",
       "  -0.018673830893555936,\n",
       "  -0.018698795928040853,\n",
       "  0.004593562619934233,\n",
       "  -0.0007559718102120887,\n",
       "  -0.002200041801338062,\n",
       "  0.03355298027069499,\n",
       "  0.0033640356028746938,\n",
       "  0.003523187697716041,\n",
       "  0.03742255502792136,\n",
       "  0.01315656199767977,\n",
       "  0.011084465998076908,\n",
       "  0.012700950583991346,\n",
       "  -0.0025916804305742133,\n",
       "  0.009948557860335808,\n",
       "  -0.017812538135148926,\n",
       "  0.0023747970427324826,\n",
       "  0.01314407948043731,\n",
       "  -0.017974809927978255,\n",
       "  0.007938874446945238,\n",
       "  -0.007945115239905152,\n",
       "  -0.012201650825615635,\n",
       "  0.013793170377045158,\n",
       "  0.018286871927717087,\n",
       "  -0.0019659948358726215,\n",
       "  -0.02324242847900525,\n",
       "  0.022343687237548236,\n",
       "  -0.02160721965156581,\n",
       "  -0.031306127167052444,\n",
       "  -0.006784242533340451,\n",
       "  0.008825132239837167,\n",
       "  -0.012513712825354467,\n",
       "  0.012607332170334223,\n",
       "  -0.022318722203063315,\n",
       "  0.03285395930511731,\n",
       "  0.007501986809120504,\n",
       "  0.018137081720807587,\n",
       "  0.028784660546721075,\n",
       "  -0.025564174823457287,\n",
       "  0.010560201205216278,\n",
       "  -0.022768092823791827,\n",
       "  -0.020571171651764378,\n",
       "  -0.0150663862044533,\n",
       "  -0.03527556578750901,\n",
       "  -0.03512577558059951,\n",
       "  0.002140749844436384,\n",
       "  0.0023030225685883457,\n",
       "  0.0071836826194378095,\n",
       "  -0.021457429444656305,\n",
       "  -0.012931877618638146,\n",
       "  0.015815337239000818,\n",
       "  0.022530925927507744,\n",
       "  -0.05017967833648772,\n",
       "  0.014005373170166953,\n",
       "  -0.04266520854446344,\n",
       "  -0.028035711374818823,\n",
       "  -0.028984380822600412,\n",
       "  0.0069589977747348715,\n",
       "  -0.041017516268458905,\n",
       "  0.01843666213462659,\n",
       "  0.020321521306915207,\n",
       "  0.03285395930511731,\n",
       "  0.0034482925942612894,\n",
       "  -0.012132996515120797,\n",
       "  0.003109704663305587,\n",
       "  -0.032679202201077624,\n",
       "  -0.03372773364944415,\n",
       "  -0.0011741357885884645,\n",
       "  0.029508646546783673,\n",
       "  0.017775089652098917,\n",
       "  0.023229945030440163,\n",
       "  0.016926280342257,\n",
       "  -0.01959753530685261,\n",
       "  -0.008132352998542031,\n",
       "  0.020758408479078626,\n",
       "  -0.006977721550598559,\n",
       "  0.042715138613433276,\n",
       "  -0.021906800065384816,\n",
       "  -0.016951245376741916,\n",
       "  0.009349397964020427,\n",
       "  0.01908575303123444,\n",
       "  -0.013605932618408277,\n",
       "  0.015091351238938218,\n",
       "  -0.014704393204422002,\n",
       "  -0.0065283509298700495,\n",
       "  0.02005938937614621,\n",
       "  -0.003601203197650749,\n",
       "  0.015178728859635428,\n",
       "  -0.01675152510086258,\n",
       "  0.010997088377379697,\n",
       "  -0.015453343307646885,\n",
       "  0.0035856000510976756,\n",
       "  -0.003183039335689702,\n",
       "  -0.002256213128929126,\n",
       "  0.02377917578910834,\n",
       "  0.017026138617551402,\n",
       "  0.03687332426925318,\n",
       "  0.0007501206593585186,\n",
       "  0.01549079085937426,\n",
       "  0.04321443930313162,\n",
       "  0.006821690085067827,\n",
       "  0.01541589575591951,\n",
       "  -0.0009073222153615702,\n",
       "  0.01462949810096725,\n",
       "  0.024902602340929614,\n",
       "  0.0024746569478414932,\n",
       "  0.013655862687378112,\n",
       "  -0.033153539718936316,\n",
       "  0.011209291170501493,\n",
       "  0.004880660050849465,\n",
       "  0.03330332992584582,\n",
       "  -0.03939479088958455,\n",
       "  0.021419982824251563,\n",
       "  -0.02367931565116867,\n",
       "  0.02092068213455322,\n",
       "  0.002285858990964636,\n",
       "  0.004549873809585628,\n",
       "  -0.019984494272691458,\n",
       "  0.031306127167052444,\n",
       "  -0.016951245376741916,\n",
       "  0.0164644262729634,\n",
       "  -0.0015454904437209496,\n",
       "  -0.0014588930385590576,\n",
       "  -0.005635851878356893,\n",
       "  -0.015091351238938218,\n",
       "  0.024702882065050277,\n",
       "  -0.03170556771881112,\n",
       "  0.0028725368356988736,\n",
       "  0.005164637085284739,\n",
       "  0.012332716791000134,\n",
       "  -0.0077641192055508184,\n",
       "  0.0019207457108687093,\n",
       "  -0.025913685306246128,\n",
       "  -0.6442971033472308,\n",
       "  -0.0173382024799355,\n",
       "  -0.013543520032195985,\n",
       "  -0.00040412117558244205,\n",
       "  0.009536635722657305,\n",
       "  0.006038412826595525,\n",
       "  -0.011833417032624423,\n",
       "  0.0070401341368108526,\n",
       "  -0.01145269979106812,\n",
       "  -0.010572683722458736,\n",
       "  -0.0030972221460631283,\n",
       "  -0.0028584941202164367,\n",
       "  0.0035980825683401343,\n",
       "  -0.01778757310066401,\n",
       "  -0.0033546737149428496,\n",
       "  -0.0033733974908065375,\n",
       "  -0.003142471154651712,\n",
       "  -0.010017212170830646,\n",
       "  -0.0034202069304657572,\n",
       "  0.009911110308608431,\n",
       "  0.00015573878284157517,\n",
       "  0.004846333361263361,\n",
       "  -0.023991377650907503,\n",
       "  -0.020745926893158798,\n",
       "  -0.02326739351349017,\n",
       "  0.01653932137641815,\n",
       "  0.00973635506721401,\n",
       "  -0.0025620345685387035,\n",
       "  -0.013119114445952392,\n",
       "  0.030007947236482015,\n",
       "  -0.027112005098876887,\n",
       "  0.011084465998076908,\n",
       "  -0.004287740947493997,\n",
       "  0.009424293067475178,\n",
       "  0.04209101461395561,\n",
       "  0.002646291559925299,\n",
       "  -0.04785793199203569,\n",
       "  0.005979120636863188,\n",
       "  0.010060900515517935,\n",
       "  0.027062075029907054,\n",
       "  -0.013069184376982559,\n",
       "  -0.010435376032791693,\n",
       "  0.011708591860199836,\n",
       "  0.0020736564306734983,\n",
       "  0.0057606770507814785,\n",
       "  0.0073834028953171475,\n",
       "  0.03235465861541897,\n",
       "  -0.017288272410965665,\n",
       "  0.019560088686447864,\n",
       "  -0.0062256505852324034,\n",
       "  -0.0048744187922282346,\n",
       "  0.008151077240067035,\n",
       "  -0.005046053637142699,\n",
       "  0.006827931343689056,\n",
       "  -0.0025573535081574524,\n",
       "  0.011895828687514083,\n",
       "  0.026612704409178543,\n",
       "  0.029658436753693174,\n",
       "  -0.0059947240162469195,\n",
       "  0.0028912606115625615,\n",
       "  -0.011365322170370909,\n",
       "  -8.352552477031857e-05,\n",
       "  -0.005236411792259534,\n",
       "  -0.006128910843772691,\n",
       "  0.002560474137468067,\n",
       "  0.028759695512236158,\n",
       "  0.005379960740547808,\n",
       "  -0.003133109266719868,\n",
       "  0.019123201514284448,\n",
       "  -0.006284942309303424,\n",
       "  -0.007801566757278194,\n",
       "  0.012220374135818007,\n",
       "  0.002855373490905822,\n",
       "  -0.01066630213611586,\n",
       "  0.023117603306580668,\n",
       "  -0.0013301671377038678,\n",
       "  0.01225158089458547,\n",
       "  -0.00688410267128012,\n",
       "  0.002597921689195443,\n",
       "  0.008650376998442746,\n",
       "  0.010241896549872268,\n",
       "  -0.024128686271897182,\n",
       "  -0.011939517963524004,\n",
       "  0.008750237136382415,\n",
       "  0.03005787730545185,\n",
       "  0.008400727584916206,\n",
       "  -0.03170556771881112,\n",
       "  -0.0041410716027257665,\n",
       "  0.007589364429817714,\n",
       "  0.005507906309452351,\n",
       "  0.02893445075363058,\n",
       "  0.038620876683197386,\n",
       "  0.005457976240482516,\n",
       "  -0.028959415788115495,\n",
       "  -0.023454630340804417,\n",
       "  0.01541589575591951,\n",
       "  -0.00818852479179441,\n",
       "  0.003716666482143491,\n",
       "  0.008182283067511864,\n",
       "  -0.0010103028661965245,\n",
       "  -0.006640693585052177,\n",
       "  -0.005354995706062891,\n",
       "  -0.011015812618904702,\n",
       "  0.008881304033089546,\n",
       "  0.0431395423370316,\n",
       "  -0.025426866202467608,\n",
       "  -0.015640581997606397,\n",
       "  0.010291826618842103,\n",
       "  0.017300753996885493,\n",
       "  -0.0074957455504992745,\n",
       "  -0.0010337075860261343,\n",
       "  0.0032828992407987127,\n",
       "  -0.018162046755292503,\n",
       "  -0.013194009549407144,\n",
       "  0.018461627169111507,\n",
       "  -0.021819421513364974,\n",
       "  0.025988580409700878,\n",
       "  -0.021657149720535646,\n",
       "  -0.005916708516312211,\n",
       "  -0.010909710756682487,\n",
       "  -0.0010079624524212281,\n",
       "  0.0053768398784065355,\n",
       "  -0.011839657825584335,\n",
       "  -0.011883347101594256,\n",
       "  0.010397928481064316,\n",
       "  0.0057669183094027085,\n",
       "  0.004624768913040379,\n",
       "  -0.014666945652694626,\n",
       "  0.006078980774802857,\n",
       "  0.01839921551422185,\n",
       "  -0.004478099568272149,\n",
       "  -0.0030301284994695846,\n",
       "  0.02265575109993233,\n",
       "  0.004172277895831913,\n",
       "  0.014067785756379247,\n",
       "  -0.0024559331719778052,\n",
       "  0.007501986809120504,\n",
       "  -0.02648787923675396,\n",
       "  0.003178358275308451,\n",
       "  -0.020184214548570795,\n",
       "  -0.016152364273224567,\n",
       "  0.02608843868499528,\n",
       "  0.0007610428619456699,\n",
       "  -0.015590650997313929,\n",
       "  -0.009243296101798214,\n",
       "  -0.024940048961334355,\n",
       "  -0.008918751584816921,\n",
       "  -0.03375270054657433,\n",
       "  -0.03390249075348383,\n",
       "  0.01242633613597989,\n",
       "  -0.017874949790038588,\n",
       "  -0.022618302616882323,\n",
       "  -0.014005373170166953,\n",
       "  -0.014929078514786257,\n",
       "  -0.007202406395301498,\n",
       "  -0.008631653688240374,\n",
       "  0.0015610934738586938,\n",
       "  -0.007439574222908211,\n",
       "  -0.0029224669046687083,\n",
       "  -0.025738930064851707,\n",
       "  0.0026540930167865064,\n",
       "  0.014904113480301339,\n",
       "  -0.021931765099869733,\n",
       "  -0.008032492860602362,\n",
       "  0.013293869687346813,\n",
       "  -0.0067655187574767635,\n",
       "  0.01516624634239297,\n",
       "  0.03829633309753873,\n",
       "  -0.00852555182601816,\n",
       "  -0.029658436753693174,\n",
       "  0.01995952923820654,\n",
       "  -0.005323789412956744,\n",
       "  -0.008756478860664961,\n",
       "  0.008719031308937584,\n",
       "  0.0203340047554803,\n",
       "  -0.018848586134950357,\n",
       "  0.0021423102755070205,\n",
       "  -0.013343799756316648,\n",
       "  0.022680714271771985,\n",
       "  0.019909599169236705,\n",
       "  0.01899837634185986,\n",
       "  -0.010160760653457604,\n",
       "  -0.001128106564464563,\n",
       "  -0.010597648756943655,\n",
       "  0.034177104270172655,\n",
       "  0.009418051343192632,\n",
       "  0.023804140823593258,\n",
       "  0.004003763913058722,\n",
       "  -0.01129042799823879,\n",
       "  0.005024208999137738,\n",
       "  -0.010697508894883323,\n",
       "  -0.0013059823187542689,\n",
       "  -0.012613572963294135,\n",
       "  -0.011877105377311712,\n",
       "  0.011259221239471328,\n",
       "  0.05027953847442739,\n",
       "  0.01630215448013407,\n",
       "  -0.008244695653724158,\n",
       "  0.010535236170731361,\n",
       "  0.02648787923675396,\n",
       "  0.00814483551578449,\n",
       "  0.0035856000510976756,\n",
       "  0.0015891791376542255,\n",
       "  -0.0056826610851854545,\n",
       "  0.0056857819473267275,\n",
       "  -0.028210466616213244,\n",
       "  0.00013486958887875584,\n",
       "  -0.04765821171615635,\n",
       "  0.03083179151183902,\n",
       "  -0.0034451719649506744,\n",
       "  0.013718275273590406,\n",
       "  -0.002519906189260735,\n",
       "  -0.01616484585914439,\n",
       "  -0.03312857282180613,\n",
       "  0.015653063583526222,\n",
       "  0.01618981089362931,\n",
       "  -0.015590650997313929,\n",
       "  0.007377161636695918,\n",
       "  -0.023616903996279012,\n",
       "  -0.009942317067375894,\n",
       "  0.011340357135885992,\n",
       "  0.006965239033356101,\n",
       "  -0.01788743323860368,\n",
       "  -0.012132996515120797,\n",
       "  -0.004718387792358818,\n",
       "  0.0017272669264412593,\n",
       "  0.00027168957107664586,\n",
       "  0.00963025413631443,\n",
       "  -0.005192722981910929,\n",
       "  -0.013830617928772533,\n",
       "  -0.023966412616422586,\n",
       "  -0.006319268998889527,\n",
       "  0.013019255239335356,\n",
       "  0.02248099585853791,\n",
       "  -0.021432464410171388,\n",
       "  -0.007221130171165185,\n",
       "  -0.013368764790801565,\n",
       "  -0.041641643993227104,\n",
       "  0.03270416909820781,\n",
       "  -0.014242540066451034,\n",
       "  -0.0059916031541056465,\n",
       "  0.006578280998839885,\n",
       "  0.028185501581728327,\n",
       "  -0.024590538478545518,\n",
       "  -0.0021251466978833107,\n",
       "  -0.0011437097110176362,\n",
       "  0.009911110308608431,\n",
       "  0.007214888912543956,\n",
       "  -0.01939781503097327,\n",
       "  -0.010310550860367107,\n",
       "  -0.016114915790174558,\n",
       "  -0.004730870309601278,\n",
       "  -0.010216931515387351,\n",
       "  -0.0015408094997550277,\n",
       "  0.010965882549934866,\n",
       "  -0.030107807374421685,\n",
       "  0.009567841550102136,\n",
       "  0.00932443292953551,\n",
       "  0.034052277235102804,\n",
       "  0.019622500341337525,\n",
       "  0.02332980516837983,\n",
       "  0.012326475998040222,\n",
       "  0.03717290468307219,\n",
       "  0.0034358100770188306,\n",
       "  -0.01550327337661672,\n",
       "  -0.01480425334236167,\n",
       "  -0.0030894204563712627,\n",
       "  -0.004169157499351957,\n",
       "  -0.04129213351043826,\n",
       "  -0.01066630213611586,\n",
       "  0.0032579342063137956,\n",
       "  -0.009243296101798214,\n",
       "  0.020209179583055712,\n",
       "  -0.02586375523727629,\n",
       "  0.009742596791496557,\n",
       "  -0.015053903687210842,\n",
       "  0.01418012748023874,\n",
       "  0.008363280033188831,\n",
       "  -0.004381359826812437,\n",
       "  0.009536635722657305,\n",
       "  -0.01723834234199583,\n",
       "  -0.034251997510982145,\n",
       "  0.005916708516312211,\n",
       "  0.005420528688755141,\n",
       "  -0.0036168063442038223,\n",
       "  0.0041067449131396636,\n",
       "  -0.015827818824920643,\n",
       "  0.025813825168306458,\n",
       "  0.004574838844070545,\n",
       "  0.016177329307709484,\n",
       "  0.0071899238780590395,\n",
       "  0.018736242548445598,\n",
       "  0.00941181055023272,\n",
       "  -0.016252224411164234,\n",
       "  -0.003735390258007179,\n",
       "  0.001928547284145246,\n",
       "  0.02831032675415291,\n",
       "  -0.018698795928040853,\n",
       "  0.007002686585083477,\n",
       "  -0.01636456613502373,\n",
       "  0.003966316361331347,\n",
       "  -0.007938874446945238,\n",
       "  -0.0015587530600833972,\n",
       "  -0.009224572791595841,\n",
       "  0.048631846198422854,\n",
       "  -0.001456552508368432,\n",
       "  0.01049154689472144,\n",
       "  0.008057457895087279,\n",
       "  0.02151984296219123,\n",
       "  -0.022193897030638732,\n",
       "  0.0029567938270854692,\n",
       "  -0.008949957412261752,\n",
       "  -0.010791127308540446,\n",
       "  -0.010254379067114726,\n",
       "  0.00509286284397126,\n",
       "  -0.021419982824251563,\n",
       "  -0.014916595997543797,\n",
       "  0.0007196945235800258,\n",
       "  0.03247948192519829,\n",
       "  0.004908745947475654,\n",
       "  0.007052616654053311,\n",
       "  -0.026013545444185795,\n",
       "  -0.009336915446777968,\n",
       "  0.026837389719542797,\n",
       "  0.12123011060120409,\n",
       "  0.0026260073529909746,\n",
       "  0.003360914973564079,\n",
       "  0.006977721550598559,\n",
       "  -0.005017967740516509,\n",
       "  0.022119001927183978,\n",
       "  -0.01618981089362931,\n",
       "  -0.035675006339267686,\n",
       "  0.009293226170768047,\n",
       "  0.007433332964286982,\n",
       "  0.01127794548099633,\n",
       "  0.0029521129995348765,\n",
       "  0.016576769859468158,\n",
       "  0.005692023205947957,\n",
       "  0.0023404701203157212,\n",
       "  -0.0037821996976663986,\n",
       "  -0.018049705031433008,\n",
       "  -0.008575481894987995,\n",
       "  -0.020046905927581116,\n",
       "  -0.021619701237485637,\n",
       "  -0.020271591237945374,\n",
       "  0.010572683722458736,\n",
       "  0.0034732576287462066,\n",
       "  0.016876350273287165,\n",
       "  -0.012675985549506429,\n",
       "  -0.04169157406219694,\n",
       "  0.02137005275528173,\n",
       "  0.010454099342994063,\n",
       "  0.014205092514723659,\n",
       "  -0.02806067640930374,\n",
       "  -0.0007317869912624897,\n",
       "  0.017350684065855326,\n",
       "  0.009443016377677551,\n",
       "  0.016040020686719808,\n",
       "  -0.00705885791267454,\n",
       "  0.03584975971801684,\n",
       "  0.01149638906707804,\n",
       "  0.01507886872169576,\n",
       "  0.0247153636509701,\n",
       "  0.010391686756781772,\n",
       "  -0.007289784015998708,\n",
       "  0.008513069308775701,\n",
       "  0.0033858800080489963,\n",
       "  -0.022867952961731493,\n",
       "  0.00411610656824085,\n",
       "  -0.015615616031798847,\n",
       "  -0.02422854640983685,\n",
       "  0.020933163720473047,\n",
       "  -0.017650264479674334,\n",
       "  0.014691910687179543,\n",
       "  0.010104589791527856,\n",
       "  -0.0064971451024252195,\n",
       "  -0.02918410109847975,\n",
       "  -0.023117603306580668,\n",
       "  0.00382900890449496,\n",
       "  0.014092750790864163,\n",
       "  0.007008927843704706,\n",
       "  0.023304840133894913,\n",
       "  0.015390930721434591,\n",
       "  0.025139769237213696,\n",
       "  -0.002106423154850281,\n",
       "  -0.02656277434020871,\n",
       "  -0.007258577722892561,\n",
       "  -0.02063358330665404,\n",
       "  -0.002828848258180927,\n",
       "  0.0010360481162167599,\n",
       "  -0.022106520341264153,\n",
       "  0.02019669613449062,\n",
       "  -0.01667662999740783,\n",
       "  -0.014230057549208575,\n",
       "  -0.0037197871114541055,\n",
       "  -0.0024715363185308786,\n",
       "  -0.01812460013488776,\n",
       "  0.0018162047453784476,\n",
       "  0.014617015583724791,\n",
       "  -0.00010103029389561051,\n",
       "  0.020383934824450133,\n",
       "  -0.01985966910026687,\n",
       "  0.004069297361412288,\n",
       "  -0.007645535757408778,\n",
       "  -0.009561600757142224,\n",
       "  -0.014080268273621705,\n",
       "  0.004287740947493997,\n",
       "  -0.0013964804523467647,\n",
       "  -0.00574819453353902,\n",
       "  0.027236830271301474,\n",
       "  0.013868065480499908,\n",
       "  -0.018935962824324935,\n",
       "  -0.018324320410767096,\n",
       "  0.004752714481944921,\n",
       "  0.004072417757892245,\n",
       "  0.007520710584984192,\n",
       "  0.00976132010169893,\n",
       "  -0.018137081720807587,\n",
       "  -0.015940160548780138,\n",
       "  -0.014142680859833997,\n",
       "  0.002165714878921301,\n",
       "  -0.0005554715516280912,\n",
       "  -0.0076143294643026315,\n",
       "  0.0098799044811636,\n",
       "  0.019984494272691458,\n",
       "  -0.025551691374892195,\n",
       "  -0.0196100187554177,\n",
       "  0.021457429444656305,\n",
       "  0.02278057440971165,\n",
       "  0.014879148445816422,\n",
       "  0.02080833854804846,\n",
       "  0.03175549778778095,\n",
       "  -0.01218292658409063,\n",
       "  0.00709006374011937,\n",
       "  0.026013545444185795,\n",
       "  -0.024453231720201103,\n",
       "  0.00866910123996775,\n",
       "  0.016501874756013408,\n",
       "  0.004562356326828086,\n",
       "  0.020346486341400124,\n",
       "  -0.00762681198154509,\n",
       "  0.017600334410704497,\n",
       "  0.003688580818347959,\n",
       "  -0.01843666213462659,\n",
       "  -0.007008927843704706,\n",
       "  -0.02603851047867071,\n",
       "  0.019634983789902617,\n",
       "  0.01757536937621958,\n",
       "  -0.008531793550300705,\n",
       "  0.015615616031798847,\n",
       "  -0.03155577751190162,\n",
       "  0.010809850618742818,\n",
       "  -0.01612739923873965,\n",
       "  0.007477021774635587,\n",
       "  -0.002666575534028965,\n",
       "  0.01792487985900842,\n",
       "  0.0034389307063294452,\n",
       "  0.025127285788648604,\n",
       "  0.004047452723407327,\n",
       "  -0.03098158171874852,\n",
       "  -0.014504672928542664,\n",
       "  -0.009605289101829511,\n",
       "  0.0033234674218367032,\n",
       "  -0.023729245720138504,\n",
       "  0.012176685791130718,\n",
       "  -0.017125998755491072,\n",
       "  -0.00762681198154509,\n",
       "  -0.01818701178977742,\n",
       "  -0.001822446003999677,\n",
       "  -0.03560010937316767,\n",
       "  -0.002566715396089296,\n",
       "  -0.013218974583892061,\n",
       "  -0.03217990151137928,\n",
       "  0.013843100446014991,\n",
       "  -0.00640352622310678,\n",
       "  0.022518442478942656,\n",
       "  -0.01612739923873965,\n",
       "  0.012569884618606848,\n",
       "  0.006038412826595525,\n",
       "  -0.010847298170470194,\n",
       "  -0.02507735571967877,\n",
       "  -0.005560956774902141,\n",
       "  0.006122669585151462,\n",
       "  0.02708704006439197,\n",
       "  0.017700194548644167,\n",
       "  0.013281387170104355,\n",
       "  0.027561375719605395,\n",
       "  0.0033141055339048595,\n",
       "  0.007970080274390069,\n",
       "  0.00073763814211606,\n",
       "  0.017825019721068754,\n",
       "  0.005320668550815471,\n",
       "  -0.028784660546721075,\n",
       "  0.005663937774983083,\n",
       "  0.01489163096305888,\n",
       "  0.0024091237323185855,\n",
       "  0.01715096378997599,\n",
       "  0.033378223166655306,\n",
       "  0.008868821515847088,\n",
       "  0.006778001274719222,\n",
       "  -0.009068540860403793,\n",
       "  -0.023442148754884592,\n",
       "  -0.022456030824052994,\n",
       "  -0.009056059274483967,\n",
       "  -0.02281802289276166,\n",
       "  -0.006022809447211793,\n",
       "  -0.003735390258007179,\n",
       "  -0.0016554924522971224,\n",
       "  -0.0036573745252418124,\n",
       "  -0.022168931996153815,\n",
       "  0.052875898335568244,\n",
       "  -0.020995577238007972,\n",
       "  -0.014966526066513632,\n",
       "  -0.0006042313555026128,\n",
       "  0.022443547375487902,\n",
       "  -0.026962214891967384,\n",
       "  0.018137081720807587,\n",
       "  -0.007639294498787548,\n",
       "  0.0037978028442194715,\n",
       "  -0.014217575031966117,\n",
       "  -0.0070401341368108526,\n",
       "  -0.015478308342131802,\n",
       "  0.003626168232135666,\n",
       "  0.015977609031830146,\n",
       "  0.015028938652725926,\n",
       "  -0.006940273998871183,\n",
       "  0.0019082633100415798,\n",
       "  0.0285350102018719,\n",
       "  0.018112118548967934,\n",
       "  0.022031625237809403,\n",
       "  -0.005657696516361854,\n",
       "  -0.01878617261741543,\n",
       "  0.007963839481430156,\n",
       "  -0.02890948571914566,\n",
       "  0.002732108749551873,\n",
       "  -0.021894316616819724,\n",
       "  -0.025639069926912037,\n",
       "  -0.05452359061157278,\n",
       "  0.008225972343521785,\n",
       "  -0.005542232999038454,\n",
       "  0.0005383080904197106,\n",
       "  0.02053372316871437,\n",
       "  -0.0021641546806813227,\n",
       "  -0.042016117647855594,\n",
       "  -0.008157318033026948,\n",
       "  -0.011746039411927213,\n",
       "  -0.00446561705102969,\n",
       "  0.020134284479600962,\n",
       "  0.009087265101928798,\n",
       "  -0.003360914973564079,\n",
       "  -0.018636382410505928,\n",
       "  -0.043538982888790274,\n",
       "  0.04601051944015182,\n",
       "  0.012956842653123064,\n",
       "  0.006578280998839885,\n",
       "  0.020870752065583385,\n",
       "  0.028834590615690908,\n",
       "  -0.0042596555165291235,\n",
       "  -0.018461627169111507,\n",
       "  0.0030769379391288043,\n",
       "  0.033228432959745806,\n",
       "  0.006206926809368715,\n",
       "  -0.01197696551525138,\n",
       "  0.012782087411728644,\n",
       "  0.006983962809219788,\n",
       "  -0.03457654482193133,\n",
       "  -0.00023911801719902158,\n",
       "  -0.002551112249536223,\n",
       "  -0.0008043415645266159,\n",
       "  0.03210500827056979,\n",
       "  -0.018199495238342512,\n",
       "  -0.013343799756316648,\n",
       "  -0.01446722537681529,\n",
       "  -0.0211578490308373,\n",
       "  -0.03455157792480115,\n",
       "  -0.017700194548644167,\n",
       "  -0.02360442054771392,\n",
       "  -0.008469380964088412,\n",
       "  -0.012994290204850439,\n",
       "  -0.01637704958358882,\n",
       "  -0.013506072480468609,\n",
       "  -0.013605932618408277,\n",
       "  -0.008550516860503078,\n",
       "  0.023991377650907503,\n",
       "  -0.017762608066179093,\n",
       "  0.013106631928709934,\n",
       "  -0.0013286068230485605,\n",
       "  -0.00688410267128012,\n",
       "  0.012794569928971102,\n",
       "  -0.006553315964354967,\n",
       "  -0.004743352826843736,\n",
       "  -0.0049399522405818,\n",
       "  -0.007464539257393129,\n",
       "  0.023978896064987678,\n",
       "  -0.03193025116653011,\n",
       "  -0.033952420822453665,\n",
       "  -0.019322919927518518,\n",
       "  0.02970836682266301,\n",
       "  0.014304952652663327,\n",
       "  0.013593450101165819,\n",
       "  -0.009861180239638598,\n",
       "  -0.010085865550002852,\n",
       "  -0.0058761401024435625,\n",
       "  -0.020134284479600962,\n",
       "  -0.004440652016544773,\n",
       "  -0.015028938652725926,\n",
       "  -0.016739041652297487,\n",
       "  -0.02278057440971165,\n",
       "  0.011009570894622156,\n",
       "  0.005511026705932307,\n",
       "  -0.006784242533340451,\n",
       "  0.0007922490968441518,\n",
       "  0.0030535333357145232,\n",
       "  -0.010397928481064316,\n",
       "  0.0004279159449720465,\n",
       "  0.0001727071901661262,\n",
       "  -0.008893786550332005,\n",
       "  -0.003975678482093848,\n",
       "  0.003239210663280766,\n",
       "  0.024078756202927345,\n",
       "  -0.013605932618408277,\n",
       "  0.025589139857942204,\n",
       "  0.005130310395698636,\n",
       "  0.012669744756546517,\n",
       "  0.004075538620033518,\n",
       "  0.002081458120365364,\n",
       "  0.005885502223206065,\n",
       "  -0.014017855687409412,\n",
       "  0.018012258411028263,\n",
       "  -0.009262020343323216,\n",
       "  0.01803722344551318,\n",
       "  -0.0036917014476585738,\n",
       "  -0.03667360399337385,\n",
       "  -0.010772403067015442,\n",
       "  0.019809739031297038,\n",
       "  0.010210690722427437,\n",
       "  0.0030004826374340743,\n",
       "  -0.018149565169372675,\n",
       "  0.008562999377745536,\n",
       "  0.008269660688209075,\n",
       "  0.006294303964404609,\n",
       "  0.00903109423999905,\n",
       "  0.0025058632409476395,\n",
       "  0.021869351582334808,\n",
       "  -0.012782087411728644,\n",
       "  -0.005448614119720014,\n",
       "  0.013418694859771398,\n",
       "  -0.01188958789455417,\n",
       "  0.013955443101197118,\n",
       "  0.029558576615753507,\n",
       "  -0.009467981412162468,\n",
       "  0.017949844893493338,\n",
       "  -0.03275409916717764,\n",
       "  0.019385333445053443,\n",
       "  0.009942317067375894,\n",
       "  0.018773691031495607,\n",
       "  -0.017637782893754506,\n",
       "  -0.014167644962996282,\n",
       "  0.006063377861080441,\n",
       "  0.01489163096305888,\n",
       "  -0.011590007480735163,\n",
       "  0.01627718944564915,\n",
       "  -0.01376820534256024,\n",
       "  -0.005882381361064792,\n",
       "  -0.00697148029197733,\n",
       "  0.020571171651764378,\n",
       "  -0.0004950094460464292,\n",
       "  0.0073834028953171475,\n",
       "  0.0062256505852324034,\n",
       "  -0.005947914343757041,\n",
       "  -0.0026681359650996012,\n",
       "  -0.01818701178977742,\n",
       "  -0.02536445454757795,\n",
       "  -0.039644441234433725,\n",
       "  -0.0052613768267444514,\n",
       "  0.04468737447509647,\n",
       "  -0.0049118663439556105,\n",
       "  0.010653819618873402,\n",
       "  -0.007489504291878045,\n",
       "  0.003451413223571904,\n",
       "  -0.05517268150818063,\n",
       "  -0.01525362396309018,\n",
       "  0.009380603791465257,\n",
       "  0.012844499997940937,\n",
       "  0.02716193516784672,\n",
       "  0.015116316273423136,\n",
       "  0.00688410267128012,\n",
       "  -0.00045054047837017044,\n",
       "  -0.01892348123840511,\n",
       "  0.017650264479674334,\n",
       "  -0.007127511291846746,\n",
       "  -0.008338314998703914,\n",
       "  0.018586452341536094,\n",
       "  -0.02278057440971165,\n",
       "  0.005445493723240057,\n",
       "  0.024166132892301923,\n",
       "  0.009099747619171256,\n",
       "  0.004312705981978914,\n",
       "  0.01110319023960191,\n",
       "  0.001161653271346006,\n",
       "  -0.011215532894784039,\n",
       "  0.02153232454811106,\n",
       "  -0.015565685962829012,\n",
       "  -0.02367931565116867,\n",
       "  0.024203581375351932,\n",
       "  -0.026238228891904785,\n",
       "  -0.007801566757278194,\n",
       "  0.021457429444656305,\n",
       "  -0.01685138523880225,\n",
       "  -0.04343912275085061,\n",
       "  -0.0009120031593274922,\n",
       "  -0.014666945652694626,\n",
       "  -0.006940273998871183,\n",
       "  0.00314403135289169,\n",
       "  0.02281802289276166,\n",
       "  0.0031565138701341484,\n",
       "  0.014829218376846587,\n",
       "  -0.00011263511959254261,\n",
       "  -0.007152476326331664,\n",
       "  0.000660402624886012,\n",
       "  0.0003551663178240909,\n",
       "  -0.017750124617614,\n",
       "  0.026937249857482467,\n",
       "  -0.010560201205216278,\n",
       "  -0.00853803434326062,\n",
       "  0.0063005452230258385,\n",
       "  0.006194444292126257,\n",
       "  -0.0055734392921446,\n",
       "  0.002083018318605342,\n",
       "  0.004989882309551635,\n",
       "  -0.008725272101897498,\n",
       "  -0.020383934824450133,\n",
       "  -0.02184438654784989,\n",
       "  -0.02422854640983685,\n",
       "  -0.002945871740913647,\n",
       "  0.0024028827065280143,\n",
       "  0.010347998412094482,\n",
       "  -0.018848586134950357,\n",
       "  0.014916595997543797,\n",
       "  -0.008513069308775701,\n",
       "  -0.006865378895416432,\n",
       "  -0.025938650340731045,\n",
       "  0.016114915790174558,\n",
       "  0.019035822962264606,\n",
       "  -0.02553920978897237,\n",
       "  0.011009570894622156,\n",
       "  -0.0173382024799355,\n",
       "  -0.042515418337553935,\n",
       "  -0.026437949167784122,\n",
       "  -0.02281802289276166,\n",
       "  0.004162916240730728,\n",
       "  -0.021794456478880057,\n",
       "  0.0016866987454032688,\n",
       "  0.0034014831546020693,\n",
       "  -0.011958241273726376,\n",
       "  -0.01978477399681212,\n",
       "  -0.01994704578964145,\n",
       "  -0.004094262395897205,\n",
       "  0.011864622860069252,\n",
       "  0.014367365238875619,\n",
       "  0.2286795221667339,\n",
       "  0.002207843491029928,\n",
       "  -0.016264705997084062,\n",
       "  0.02481522378890977,\n",
       "  -0.005751314930018977,\n",
       "  0.004662216464767755,\n",
       "  0.02003442434166129,\n",
       "  0.008812649722594709,\n",
       "  -0.028609905305326654,\n",
       "  -0.02334228861694492,\n",
       "  -0.024303441513291602,\n",
       "  -0.007633053240166319,\n",
       "  -0.010934675791167404,\n",
       "  0.0030160857839871477,\n",
       "  0.024565573444060598,\n",
       "  -0.018499075652161516,\n",
       "  -0.019447745099943105,\n",
       "  -0.03135605723602228,\n",
       "  -0.03210500827056979,\n",
       "  -0.051827370612492256,\n",
       "  0.0028085640512466024,\n",
       "  0.01254491958412193,\n",
       "  0.0008901587541531896,\n",
       "  -0.01732571903137041,\n",
       "  0.022930364616621155,\n",
       "  0.020171731100005703,\n",
       "  0.011789727756614502,\n",
       "  -0.0008768961377907419,\n",
       "  0.0068778614126588904,\n",
       "  0.0007723551140928157,\n",
       "  -0.02540190116798269,\n",
       "  0.01149638906707804,\n",
       "  -0.00438448068895371,\n",
       "  0.02030903972099538,\n",
       "  0.014504672928542664,\n",
       "  0.0033577943442534646,\n",
       "  0.02385407089256309,\n",
       "  -0.008032492860602362,\n",
       "  0.009917352032890977,\n",
       "  0.020396416410369957,\n",
       "  0.026512844271238876,\n",
       "  -0.018486592203596428,\n",
       "  -0.015965125583265054,\n",
       "  -0.010903469963722573,\n",
       "  0.0046809402406314425,\n",
       "  0.041816397371976254,\n",
       "  ...]}"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sentences[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来需要根据余弦相似度进行切分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cosine_similarity(vec1, vec2):\n",
    "    \"\"\"Calculate the cosine similarity between two vectors.\"\"\"\n",
    "    dot_product = np.dot(vec1, vec2)\n",
    "    norm_vec1 = np.linalg.norm(vec1)\n",
    "    norm_vec2 = np.linalg.norm(vec2)\n",
    "    return dot_product / (norm_vec1 * norm_vec2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9583807615923087"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cosine_similarity(sentences[0]['combined_sentence_embedding'], sentences[1]['combined_sentence_embedding'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_cosine_distances(sentences):\n",
    "    distances = []\n",
    "    for i in range(len(sentences) - 1):\n",
    "        embedding_current = sentences[i]['combined_sentence_embedding']\n",
    "        embedding_next = sentences[i + 1]['combined_sentence_embedding']\n",
    "        # Calculate cosine similarity\n",
    "        similarity = cosine_similarity(embedding_current, embedding_next)\n",
    "        # Convert to cosine distance\n",
    "        distance = 1 - similarity\n",
    "        distances.append(distance)\n",
    "        # Store distance in the dictionary\n",
    "        sentences[i]['distance_to_next'] = distance\n",
    "    return distances, sentences"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "distances, sentences = calculate_cosine_distances(sentences)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.11893614462164948"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sentences[-2]['distance_to_next']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.plot(distances);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "有很多方法可以基于这些距离来划分论文，但我打算将任何超过距离95百分位数的距离视为一个分割点。这是我们需要配置的唯一参数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkoAAAHHCAYAAABA5XcCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd5gTZdfG70l2k91s78CCLE0pIr1X6agg2LFQBEQFLKjvCyKgIuIriFj4pCigIooCYkc6iiAgiyC9wwpsY3tLfb4/Js+kJzPZlMnu87uuvXYzmZ2cTCYzZ065D0cIIWAwGAwGg8FgOKAItgEMBoPBYDAYcoU5SgwGg8FgMBguYI4Sg8FgMBgMhguYo8RgMBgMBoPhAuYoMRgMBoPBYLiAOUoMBoPBYDAYLmCOEoPBYDAYDIYLmKPEYDAYDAaD4QLmKDEYDAaDwWC4gDlKjBpJRkYG7rrrrqC89urVq8FxHP7666+gvL5cuXTpEjiOw+rVq4NtSlDhOA5Tpkzx++vs2rULHMdh165dHtft27cv+vbtKzxmn5UjdJ8sXLgw4K89duxYZGRkBPx1GTzMUaqB0Au1q58///wz2CZ6TU5ODl588UU0b94cGo0GUVFR6NChA9544w0UFRUF27yA8Oqrr9p8ngqFAnXr1sVdd90V0p+tPVeuXMGTTz6JjIwMqNVqpKamYsSIEfjjjz98/lr2+9T+Jzs72+evyXAOdfCsfxITE9G1a1d88cUXwTYv5Pj555/x6quvBtuMkCYs2AYw/Mfrr7+ORo0aOSxv2rRpEKypPgcPHsQdd9yBsrIyPProo+jQoQMA4K+//sJbb72F3377DVu2bAmylYHjo48+QnR0NEwmE7KysrBixQr07t0bBw4cQNu2bYNtXrX4448/cMcddwAAJkyYgJYtWyI7OxurV69Gr1698N5772Hq1Kk+f126T+2Jj4/3+WvJmYYNG6KyshLh4eFBs+GZZ55Bp06dAAA3btzAunXr8Oijj6KoqAiTJ08Oml3BYMWKFTCZTF79788//4wlS5YwZ6kaMEepBjN06FB07Ngx2Gb4hKKiIowcORJKpRKHDx9G8+bNbZ6fN28eVqxYESTrgsN9992H5ORk4fGIESNw66234ptvvglpR6mwsBD33XcfIiMj8ccff6BJkybCc9OmTcPgwYPx3HPPoUOHDujevbtPX9t+n9ZWOI5DREREUG3o1asX7rvvPuHxU089hcaNG2Pt2rVuHSWTyQSdThd0+31JMB1WBku91Xq++uordOjQATExMYiNjUXr1q3x3nvvCc/r9Xq89tpraNasGSIiIpCUlISePXti69atwjpHjx7F2LFj0bhxY0RERKBOnTp4/PHHcePGDWGdnTt3guM4fPvttw42rF27FhzHYd++fS7tXLZsGa5evYpFixY5OEkAkJaWhldeecVh+Z49e9C5c2dERESgcePG+Oyzz2yepykXe2j68tKlS8IyWvfkaZvOKCwsROfOnVG/fn2cPn0aAJCdnY1x48ahfv36UKvVqFu3Lu6++26b15RCnTp1AABhYZb7H51Oh9mzZ6NDhw6Ii4tDVFQUevXqhZ07dzr8v6djAeAd1ueeew4NGjSAWq1G06ZN8b///c/hbreoqAhjx45FXFwc4uPjMWbMGNGp0WXLliE7OxsLFiywcZIAIDIyEp9++ik4jsPrr78uLKef1x9//IFp06YhJSUFUVFRGDlyJPLy8kS9rhhoWujrr7/Ga6+9hvT0dMTExOC+++5DcXExtFotnnvuOaSmpiI6Ohrjxo2DVqt1uq0vvvgCt9xyCyIiItChQwf89ttvDutcvXoVjz/+ONLS0qBWq9GqVSusXLnSYb1///0XI0aMQFRUFFJTU/H888+7fN3ly5ejSZMmiIyMROfOnfH77787rOOsRmns2LGIjo7G1atXMWLECERHRyMlJQUvvvgijEajzf/fuHEDjz32GGJjY4XP/8iRI9Wqe1KpVEhISLA5vgFLzdcXX3yBVq1aQa1WY/PmzQDE7T8p3xF7CCF44oknoFKpsHHjRgCWY/G3337DpEmTkJSUhNjYWIwePRqFhYUO2/i///s/we569eph8uTJDt8V+xol63op+nmq1Wp06tQJBw8etPm/JUuWCPuJ/lDEfOcZLKJUoykuLkZ+fr7NMo7jkJSUBADYunUrRo0ahf79++N///sfAODkyZP4448/8OyzzwLgHYn58+djwoQJ6Ny5M0pKSvDXX38hMzMTAwcOFLZz4cIFjBs3DnXq1MHx48exfPlyHD9+HH/++Sc4jkPfvn3RoEEDfPHFFxg5cqSNTV988QWaNGmCbt26uXwv33//PSIjI23uMD1x7tw53HfffRg/fjzGjBmDlStXYuzYsejQoQNatWolejvV3WZ+fj4GDhyIgoIC7N69W7j433vvvTh+/DimTp2KjIwM5ObmYuvWrbhy5Yqows2CggIA/B301atXMXfuXEREROCBBx4Q1ikpKcHHH3+MUaNGYeLEiSgtLcUnn3yCwYMH26ToxBwLFRUV6NOnD65evYpJkybhpptuwt69ezFjxgxcv34dixcvBsBfPO6++27s2bMHTz75JFq0aIFvv/0WY8aMEbWPf/jhB4f3YU2jRo3Qs2dP7NixA5WVlYiMjBSemzp1KhISEjBnzhxcunQJixcvxpQpU7Bu3TpRr033qTVhYWEOqbf58+cjMjIS06dPx7lz5/DBBx8gPDwcCoUChYWFePXVV/Hnn39i9erVaNSoEWbPnm3z/7t378a6devwzDPPQK1W4//+7/8wZMgQHDhwALfeeisAvh6va9eugiOQkpKCX375BePHj0dJSQmee+45AEBlZSX69++PK1eu4JlnnkG9evXw+eefY8eOHQ7v5ZNPPsGkSZPQvXt3PPfcc7hw4QKGDx+OxMRENGjQwOP+MRqNGDx4MLp06YKFCxdi27ZteOedd9CkSRM89dRTAPjjcdiwYThw4ACeeuopNG/eHN99953oz59SWloqnL8KCgqwdu1aHDt2DJ988onDujt27MDXX3+NKVOmIDk5GRkZGaL3n9jviLN98fjjj2PdunX49ttvceedd9o8P2XKFMTHx+PVV1/F6dOn8dFHH+Hy5cuCsw3w59fXXnsNAwYMwFNPPSWsd/DgQfzxxx8eI0lr165FaWkpJk2aBI7j8Pbbb+Oee+7BhQsXEB4ejkmTJuHatWvYunUrPv/8c5v/FfOdZ5ghjBrHqlWrCACnP2q1Wljv2WefJbGxscRgMLjcVps2bcidd97p9vUqKiocln355ZcEAPntt9+EZTNmzCBqtZoUFRUJy3Jzc0lYWBiZM2eO29dISEggbdq0cbuONQ0bNnR4/dzcXKJWq8kLL7wgLJszZw5x9jWg+/DixYuSt0n/9+DBg+T69eukVatWpHHjxuTSpUvCOoWFhQQAWbBggej3ZG+z/U98fDzZvHmzzboGg4FotVqbZYWFhSQtLY08/vjjwjIxx8LcuXNJVFQUOXPmjM3y6dOnE6VSSa5cuUIIIWTTpk0EAHn77bdt7OjVqxcBQFatWuX2/cXHx3v8rJ955hkCgBw9epQQYtnnAwYMICaTSVjv+eefJ0ql0uaYc4arfQqA3HLLLcJ6O3fuJADIrbfeSnQ6nbB81KhRhOM4MnToUJvtduvWjTRs2NBmGd3uX3/9JSy7fPkyiYiIICNHjhSWjR8/ntStW5fk5+fb/P9DDz1E4uLihO/d4sWLCQDy9ddfC+uUl5eTpk2bEgBk586dhBBCdDodSU1NJW3btrU5JpYvX04AkD59+gjLLl686PBZjRkzhgAgr7/+uo097dq1Ix06dBAeb9iwgQAgixcvFpYZjUbSr18/UZ8/3cf2PwqFgsybN89hffrc8ePHbZaL3X9ivyN0nyxYsIDo9Xry4IMPksjISPLrr7/a/C89Fjt06GBzjLz99tsEAPnuu+8IIfy5Q6VSkUGDBhGj0Sis9+GHHxIAZOXKlcKyMWPG2BxH1JakpCRSUFAgLP/uu+8IAPLDDz8IyyZPnuz0HCfmO8/gYam3GsySJUuwdetWm59ffvlFeD4+Ph7l5eU2aTR74uPjcfz4cZw9e9blOtZ39FVVVcjPz0fXrl0BAJmZmcJzo0ePhlarxfr164Vl69atg8FgwKOPPur2vZSUlCAmJsbtOva0bNkSvXr1Eh6npKTglltuwYULFyRtx9tt/vvvv+jTpw/0ej1+++03NGzYUHguMjISKpUKu3btchqOF8OGDRuwdetWbNmyBatWrcLNN9+Me++9F3v37hXWUSqVUKlUAPg7/YKCAhgMBnTs2NHmsxFzLHzzzTfo1asXEhISkJ+fL/wMGDAARqNRSB39/PPPCAsLEyIM1A6xxdelpaUeP2v6fElJic3yJ554wia10KtXLxiNRly+fFnUa9N9av2zatUqh/VGjx5tc7ffpUsXEELw+OOP26zXpUsXZGVlwWAw2Czv1q2b0IwAADfddBPuvvtu/PrrrzAajSCEYMOGDRg2bBgIITb7e/DgwSguLhY+v59//hl169a1ibZqNBo88cQTNq/5119/ITc3F08++aRwTAAQUqRiefLJJ20e9+rVy+b437x5M8LDwzFx4kRhmUKhkFyAPXv2bOEzWLduHUaNGoWZM2c6TQ316dMHLVu2FB5L2X9ivyMUnU6H+++/Hz/++CN+/vlnDBo0yKn9TzzxhM0x8tRTTyEsLAw///wzAGDbtm3Q6XR47rnnoFBYLsUTJ05EbGwsfvrpJ4/76MEHH0RCQoLwmJ6bxJzjxHznGTws9VaD6dy5s9ti7qeffhpff/01hg4divT0dAwaNAgPPPAAhgwZIqzz+uuv4+6778bNN9+MW2+9FUOGDMFjjz2G2267TVinoKAAr732Gr766ivk5ubavEZxcbHwd/PmzdGpUyd88cUXGD9+PAA+7da1a1ePnXixsbEoLS2V9P5vuukmh2UJCQleOyZSt/nYY48hLCwMJ0+eFOqHKGq1Gv/73//wwgsvIC0tDV27dsVdd92F0aNHO6zrit69e9sUHt93331o1qwZpk6dikOHDgnLP/30U7zzzjs4deoU9Hq9sNy6I1LMsXD27FkcPXoUKSkpTu2hn/3ly5dRt25dh+6xW265RdT7iomJ8fhZ0+ftHSr7z4deRMR+5vb71BX2r0MdDfv0VVxcHEwmE4qLi4WUNwA0a9bMYZs333wzKioqkJeXB4VCgaKiIixfvhzLly93aoP1/m7atKlDrZ39/qbOov1rh4eHo3Hjxi7fqzUREREOn7/98U8/f41GY7Oe1G7b1q1bY8CAAcLjBx54AMXFxZg+fToefvhhGzvsu3vz8vJE7z9A3HeEMn/+fJSVleGXX36x0Z6yx34/R0dHo27dukINIv087D8nlUqFxo0bi3Luq3O8i/nOM3hYRKkWk5qair///hvff/89hg8fjp07d2Lo0KE2tQS9e/fG+fPnsXLlStx66634+OOP0b59e3z88cfCOg888ABWrFiBJ598Ehs3bsSWLVuEYkr7It/Ro0dj9+7d+Pfff3H+/Hn8+eefHqNJAO9knTlzBjqdTvT7UyqVTpcTQoS/nRVyA3AoTpWyTco999yDoqIil8WRzz33HM6cOYP58+cjIiICs2bNQosWLXD48GGn63siOjoaXbp0QWZmJsrLywEAa9aswdixY9GkSRN88skn2Lx5M7Zu3Yp+/frZfDZijgWTyYSBAwc6RFzoz7333uuV3fa0aNECp0+fdlmMDPANBOHh4Q4XIymfT3Vw9Tq+en362Tz66KMu93ePHj2kGe0DXL2/QNG/f39UVVXhwIEDNsuto9qAtP0n9jtCGTx4MKKiovD222+jqqrKT+9UHNU53sR85xk8LKJUy1GpVBg2bBiGDRsGk8mEp59+GsuWLcOsWbOEO8DExESMGzcO48aNQ1lZGXr37o1XX30VEyZMQGFhIbZv347XXnvNpmDVVaruoYcewrRp0/Dll18KOi0PPvigRzuHDRuGffv2YcOGDRg1apRv3jwsd2BFRUU2BbtiUzXumDp1Kpo2bYrZs2cjLi4O06dPd1inSZMmeOGFF/DCCy/g7NmzaNu2Ld555x2sWbPGq9ekKZ6ysjJERUVh/fr1aNy4MTZu3GjjFM6ZM8fhfz0dC02aNEFZWZnNXb4zGjZsiO3bt6OsrMwmqkS7/Txx1113Yd++ffjmm2+cOtGXLl3C77//jgEDBjhcIEMFZ9+PM2fOQKPRCJGSmJgYGI1GUfv72LFjIITYfMb2+5umfs+ePYt+/foJy/V6PS5evIg2bdp4/X7sX2fnzp2oqKiwiSqdO3eu2tu2Pr7dkZKSInr/SfmOAEDXrl3x5JNP4q677sL999+Pb7/91qETD+D38+233y48Lisrw/Xr1wV9MPp5nD592iaip9PpcPHiRY92i8XVzSAg7vzPYBGlWo11+z7A1xHQlBq9m7dfJzo6Gk2bNhWep3c09ncwtAPKnuTkZAwdOhRr1qzBF198gSFDhohKdTz55JOoW7cuXnjhBZw5c8bh+dzcXLzxxhset2MP7UCzbs0uLy/Hp59+Knlbzpg1axZefPFFzJgxAx999JGwvKKiwuFutEmTJoiJiXEbSXFHQUEB9u7dizp16iA1NRWA889n//79DlIMYo6FBx54APv27cOvv/7q8NpFRUXCReyOO+6AwWCweb9GoxEffPCBqPcxadIkpKam4qWXXnKotaiqqsK4ceNACHHoJAsl9u3bZ1P/kpWVhe+++w6DBg2CUqmEUqnEvffeiw0bNuDYsWMO/28teXDHHXfg2rVrNrV/FRUVDimnjh07IiUlBUuXLrWJzK5evdqnqvaDBw+GXq+30TUzmUxCm3p1+PHHHwHAo1MnZf+J/Y5YM2DAAHz11VfYvHkzHnvsMaeRp+XLl9uk8T766CMYDAYMHTpU2IZKpcL7779v89qffPIJiouLHbrovCUqKgoAHD5jMd95Bg+LKNVgfvnlF5w6dcpheffu3dG4cWNMmDABBQUF6NevH+rXr4/Lly/jgw8+QNu2bdGiRQsAfPFy37590aFDByQmJuKvv/7C+vXrhVlVsbGx6N27N95++23o9Xqkp6djy5YtuHjxoku7Ro8eLRSezp07V9R7SUhIwLfffos77rgDbdu2tVHmzszMxJdffulWXsAVgwYNwk033YTx48fjpZdeglKpxMqVK5GSkoIrV65I3p4zFixYgOLiYkyePBkxMTF49NFHcebMGfTv3x8PPPAAWrZsibCwMHz77bfIycnBQw89JGq769evR3R0NAghuHbtGj755BMUFhZi6dKlwl3kXXfdhY0bN2LkyJG48847cfHiRSxduhQtW7a0uSsXcyy89NJL+P7773HXXXcJkgjl5eX4559/sH79ely6dAnJyckYNmwYevTogenTp+PSpUto2bIlNm7caFOv5o6kpCSsX78ed955J9q3b++gzH3u3Dm89957PhebtN6n9gwcOBBpaWk+e51bb70VgwcPtpEHAIDXXntNWOett97Czp070aVLF0ycOBEtW7ZEQUEBMjMzsW3bNkHKYOLEifjwww8xevRoHDp0CHXr1sXnn3/uUCMUHh6ON954A5MmTUK/fv3w4IMP4uLFi1i1apXoGiUxjBgxAp07d8YLL7yAc+fOoXnz5vj+++8Fe91FOKz5/fffhZuJgoICfP/999i9ezceeughp1pq9ojdf2K/I87e56pVqzB69GjExsZi2bJlNs/rdDrhO3769Gn83//9H3r27Inhw4cD4KNeM2bMwGuvvYYhQ4Zg+PDhwnqdOnUSVZIgBnqefOaZZzB48GAolUo89NBDor7zDDMB77Nj+B138gCwas9dv349GTRoEElNTSUqlYrcdNNNZNKkSeT69evCtt544w3SuXNnEh8fTyIjI0nz5s3JvHnzbNpe//33XzJy5EgSHx9P4uLiyP3330+uXbtGADht+9dqtSQhIYHExcWRyspKSe/t2rVr5Pnnnyc333wziYiIIBqNhnTo0IHMmzePFBcXC+s1bNjQqaxBnz59bNqgCSHk0KFDpEuXLsI+WLRokUt5ADHbtJYHoBiNRjJq1CgSFhZGNm3aRPLz88nkyZNJ8+bNSVRUFImLiyNdunSxafF2hbNW9qioKNKtWzeH/zeZTOTNN98kDRs2JGq1mrRr1478+OOPDu3GYo4FQggpLS0lM2bMIE2bNiUqlYokJyeT7t27k4ULF9ocEzdu3CCPPfYYiY2NJXFxceSxxx4jhw8fFtUeTrl48SKZOHEiuemmm0h4eDhJTk4mw4cPJ7///rvDus72OSGWVnPaIi9ln1r/0P+n2/vmm29EvT7dbl5enrAMAJk8eTJZ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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "plt.plot(distances)\n",
    "\n",
    "y_upper_bound = 0.15\n",
    "plt.ylim(0, y_upper_bound)\n",
    "plt.xlim(0, len(distances))\n",
    "\n",
    "\n",
    "# We need to get the distance threshold that we'll consider an outlier\n",
    "# We'll use numpy .percentile() for this\n",
    "breakpoint_percentile_threshold = 95\n",
    "breakpoint_distance_threshold = np.percentile(distances, breakpoint_percentile_threshold) # If you want more chunks, lower the percentile cutoff\n",
    "plt.axhline(y=breakpoint_distance_threshold, color='r', linestyle='-')\n",
    "num_distances_above_theshold = len([x for x in distances if x > breakpoint_distance_threshold]) # The amount of distances above your threshold\n",
    "plt.text(x=(len(distances)*.01), y=y_upper_bound/50, s=f\"{num_distances_above_theshold + 1} Chunks\")\n",
    "\n",
    "# Then we'll get the index of the distances that are above the threshold. This will tell us where we should split our text\n",
    "indices_above_thresh = [i for i, x in enumerate(distances) if x > breakpoint_distance_threshold] # The indices of those breakpoints on your list\n",
    "\n",
    "# Start of the shading and text\n",
    "colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k']\n",
    "\n",
    "for i, breakpoint_index in enumerate(indices_above_thresh):\n",
    "    start_index = 0 if i == 0 else indices_above_thresh[i - 1]\n",
    "    end_index = breakpoint_index if i <= len(indices_above_thresh) - 1 else len(distances)\n",
    "\n",
    "    plt.axvspan(start_index, end_index, facecolor=colors[i % len(colors)], alpha=0.25)\n",
    "    plt.text(x=np.average([start_index, end_index]),\n",
    "            y=breakpoint_distance_threshold + (y_upper_bound)/ 20,\n",
    "            s=f\"Chunk #{i}\", horizontalalignment='center',\n",
    "            rotation='vertical')\n",
    "# # Additional step to shade from the last breakpoint to the end of the dataset\n",
    "if indices_above_thresh:\n",
    "    last_breakpoint = indices_above_thresh[-1]\n",
    "    if last_breakpoint < len(distances):\n",
    "        plt.axvspan(last_breakpoint, len(distances), facecolor=colors[len(indices_above_thresh) % len(colors)], alpha=0.25)\n",
    "        plt.text(x=np.average([last_breakpoint, len(distances)]),\n",
    "                 y=breakpoint_distance_threshold + (y_upper_bound)/ 20,\n",
    "                 s=f\"Chunk #{i+1}\",\n",
    "                 rotation='vertical')\n",
    "plt.title(\"Essay Chunks Based On Embedding Breakpoints\")\n",
    "plt.xlabel(\"Index of sentences in essay (Sentence Position)\")\n",
    "plt.ylabel(\"Cosine distance between sequential sentences\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize the start index\n",
    "start_index = 0\n",
    "\n",
    "# Create a list to hold the grouped sentences\n",
    "chunks = []\n",
    "\n",
    "# Iterate through the breakpoints to slice the sentences\n",
    "for index in indices_above_thresh:\n",
    "    # The end index is the current breakpoint\n",
    "    end_index = index\n",
    "\n",
    "    # Slice the sentence_dicts from the current start index to the end index\n",
    "    group = sentences[start_index:end_index + 1]\n",
    "    combined_text = ' '.join([d['sentence'] for d in group])\n",
    "    chunks.append(combined_text)\n",
    "    \n",
    "    # Update the start index for the next group\n",
    "    start_index = index + 1\n",
    "\n",
    "# The last group, if any sentences remain\n",
    "if start_index < len(sentences):\n",
    "    combined_text = ' '.join([d['sentence'] for d in sentences[start_index:]])\n",
    "    chunks.append(combined_text)\n",
    "\n",
    "# grouped_sentences now contains the chunked sentences"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Chunk #0\n",
      "I have a Dream\n",
      "\n",
      "by Martin Luther King, Jr. Delivered on the steps at the Lincoln Memorial in Washington\n",
      "D.C. on August 28, 1963\n",
      "\n",
      "Five score years ago, a great American, in whose symbolic shadow\n",
      "we sta\n",
      "...\n",
      ". One hundred years\n",
      "later, the Negro is still languishing in the corners of American\n",
      "society and finds himself an exile in his own land. So we have\n",
      "come here today to dramatize an appalling condition.\n",
      "\n",
      "\n",
      "Chunk #1\n",
      "In a sense we have come to our nation's capital to cash a check. When the architects of our republic wrote the magnificent words\n",
      "of the Constitution and the declaration of Independence, they\n",
      "were sign\n",
      "...\n",
      "fied, and we will not be\n",
      "satisfied until justice rolls down like waters and righteousness\n",
      "like a mighty stream. I am not unmindful that some of you have come here out of great\n",
      "trials and tribulations.\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for i, chunk in enumerate(chunks[:2]):\n",
    "    buffer = 200\n",
    "    print (f\"Chunk #{i}\")\n",
    "    print (chunk[:buffer].strip())\n",
    "    print (\"...\")\n",
    "    print (chunk[-buffer:].strip())\n",
    "    print (\"\\n\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "llamaindex",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.18"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
